<?php
namespace LANGUAGE_EXCHANGE;
/*
 * 基于scws的中文分词
 */
class Scws extends Word_segmentation{
    /*
     * @var scws_obj scws对象
     */
    protected $scws_obj;
    
    /*
     * 如果没有安装扩展 那么就用api的形式 这里是API地址
     */
    const API_URL = 'http://www.xunsearch.com/scws/api.php';
    public function __construct() {
        parent::__construct();
        if(class_exists('scws_new'))
        {
            $this->scws_obj = scws_new();
        }
    }
    /*
     * 处理分词
     */
    public function exec($text = false)
    {
        if(false !== $text)
        {
            $this->text = $text;
        }
        if(is_object($this->scws_obj))
        {
            $this->ext();
        }
        else
        {
            $this->url();
        }
        return $this->text;
    }
    /*
     * 使用扩展分词
     */
    public function ext()
    {
        $tmp = array();
        $this->scws_obj->set_charset('utf8');
        // 这里没有调用 set_dict 和 set_rule 系统会自动试调用 ini 中指定路径下的词典和规则文件
        $this->scws_obj->send_text($this->text);
        while ($tmp[] = $this->scws_obj->get_result())
        {
        }
        $this->text = $tmp;
        $this->scws_obj->close();
        return $this->text;
    }
    /*
     * 使用URL分词
     */
    public function url()
    {
        $post = "data=".$this->escape($this->text)."&multi=0&respond=php";
        $ch = curl_init(self::API_URL);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        $data = curl_exec($ch);
        curl_close($ch);
        return $this->text = json_decode($data);
    }
}